// 增删改查的请求地址
const urlPrefix = "/zjfServiceRemoteView"
const urlAdd = urlPrefix + "/add";
const urlDel = urlPrefix + "/delete";
const urlEdit = urlPrefix + "/update";
const urlQuery = urlPrefix + "/list";
let server = [];
// const urlDropdownVersion = "/zjfUserModuleVersion/list";
// const urlDropdownKey = "/zjfPubKey/list";
const urlDropdownServer = "/zjfBaseServerInfo/list";

const urlScanService = urlPrefix + "/scan";
customerClickToSelect = false;
const param = {"PAGE_CAPACITY": 1000, "PAGE_OFFSET": 0, "SORT_TYPE": "asc"};
let keyList = [];
const columns =
    [{
        checkbox: true
    }, {
        field: 'ID',
        title: 'ID',
        align: 'center'
    }, {
        field: 'PARENT',
        title: '父路径',
        align: 'center',
        sortable:true
    }, {
        field: 'NAME',
        title: '服务名称',
        align: 'center',
        sortable:true
    }, {
        field: 'LIB',
        title: 'lib',
        visible: false,
        align: 'center',
        emptytext: "-",
    }, {
        field: 'RESOURCE',
        title: 'resource',
        align: 'center',
        visible: false,
        emptytext: "-",//数据为空时显示 ✔️
    }, {
        field: 'BIN_START',
        title: '启动路径',
        align: 'center',
        visible: false,
    }, {
        field: 'BIN_STOP',
        title: '停止路径',
        align: 'center',
        visible: false,
        // editable: {
        //     type: 'text',
        //     title: '停止路径',
        //     validate: function (v) {
        //         if (!v) return '停止路径不能为空';
        //     }
        // }
    },  {
        field: 'IGNORE',
        title: '是否忽略',
        align: 'center',
        sortable: true,
        editable: {
            type: 'select',
            title: '是否忽略',
            validate: function (v) {
                if (!v) return '是否忽略不能为空';
            },
            source: function () {
                return [{value: 0, text: "否" },{value: 1, text: "是" }];
            }
        }
    },{
        field: 'ORDER',
        title: '优先级',
        align: 'center',
        sortable:true,
        editable: {
            type: 'select',
            title: '优先级',
            validate: function (v) {
                if (!v) return '优先级不能为空';
            },
            source: function () {
                let soruce = [];
                for (let i = 0; i < 100; i++) {
                    soruce.push({value: i, text: i})
                }
                return soruce;
            }

        }
    },{
        field: 'SERVER_ID',
        title: '关联服务器',
        align: 'center',
        editable: {
            disabled: true,
            type: 'select',
            title: '关联服务器',
            validate: function (v) {
                if (!v) return '关联服务器不能为空';
            },
            source: function () {
                let list = [];
                for (it of server) {
                    list.push({value: it.ID, text: it.ID + "(" + it.NAME + ")"});
                }
                return list;
            }
        }
    },{
            field: 'DESC',
            title: '描述',
            align: 'center',
            visible: false,
            switchable: true,
            editable: {
                type: 'text',
                title: '描述',
                validate: function (v) {
                    if (!v) return '描述不能为空';
                }
            }
        }

    ];

// 初始化表格之前 初始化添加的下拉框,可以异步
function beforeInitTable() {
    $("#m_service").addClass("active");

    // 初始化添加的下拉框,异步
    initDropdownServer();

    // initSearchFunction();

}

// function initSearchFunction() {
//     $(".fixed-table-toolbar.search-input").selectpicker({
//         'selectedText': 'cat'
//     });
// }

// 初始化左上角的筛选按钮
function initSelectBtn() {

}

function initScanBtn() {
    // 绑定modal按钮的click事件
    $("#scan_btn").click(function () {
        console.log("我点击了modal");
        let append = "";
        // 添加一个空白的公钥
        // append += "<option value=''></option>";
        if (server.length === 0) {
            initDropdownServer();
        }
        for (it of server) {
            append += "<option value=\"" + it.ID + "\">" + it.ID + "(" + it.NAME + ")</option>";
        }
        $("#scan_form select[name=scan_server]").html(append);
    });
}

//加载表格内的下拉框-同步
function initDropdownServer() {
    // 这个必须用同步,不然后面的就获取不到了
    ajax(urlDropdownServer, param, false, 3)
}

function add(param) {
    ajax(urlAdd, param, false, 1);
}

// 隐藏key选项,显示密码选项
function hideKey(ipt) {
    // 先删除 name是way的input框的checked自定义属性
    $("#add input[name=way]").removeAttr("checked")
    // 再添加一个
    $(ipt).attr("checked", "checked")

    $("#add .key").addClass("hide");
    $("#add .pass").removeClass("hide");
}

// 隐藏密码选项,显示key选项
function hidePass(ipt) {
    // 先删除 name是way的input框的checked自定义属性
    $("#add input[name=way]").removeAttr("checked")
    // 再添加一个
    $(ipt).attr("checked", "checked")

    $("#add .pass").addClass("hide");
    $("#add .key").removeClass("hide");
}

function defaultSet() {
    $("#add input[name='lib']").val("/lib");
    $("#add input[name='resource']").val("/resource");
    $("#add input[name='bin_start']").val("/bin/restart.sh");
    $("#add input[name='bin_stop']").val("/bin/stop.sh");
    $("#add input[name='order']").val(1);
}

// 删除数据 发送请求
function delRecord(rows) {
    // 映射出ID array
    let ids = rows.map(r => {
        return r.ID
    })
    let param = {}
    param["IDS"] = ids;
    // 同步删除数据,然后刷新列表
    ajax(urlDel, param ,false,2)
}

// 模态框的确认事件
function modalConfirm() {
    let formObj = getScanTableVal("scan_form");
    console.log(formObj);
    ajax(urlScanService, formObj, true, 4);

    $('#myModal').modal('hide')
}

// 666
// K V形式的对象,自定义请求参数
let customer_param = [];

function getCustomerParam() {
    return customer_param;
}

// 自定义筛选项
function dataShow(param) {
    console.log(param);
    let obj = {}
    obj.K = "SERVER_ID";
    obj.V = param
    customer_param.push(obj);

    silenceRefresh("list");
}

// 初始化下拉框
function customerInitBtn() {
    $("#btn_delete").removeClass("hidden");
    $("#scan_btn").removeClass("hidden");
    $("#customer_select_btn").removeClass("hidden");

    console.log("初始化远程视图的下拉框按钮,服务器选择");
    let append = "<li><a href=\"#\" onclick=\"dataShow(null)\">All</a></li>";
    for (it of server) {
        append += "<li><a href=\"#\" onclick=\"dataShow(" + it.ID + ")\">" + it.NAME + "</a></li>"
    }
    $("#customer_select").html(append);


    // 初始化扫描按钮
    initScanBtn();

    // 初始化筛选按钮
    initSelectBtn();
}

function customer_sheet_name() {
    return "远程服务列表";
}